package com.example.demo.customer;

import com.example.demo.exception.NotFoundException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CustomerService {

    private final static Logger LOGGER = LoggerFactory.getLogger(CustomerService.class);

    private final CustomerRepository customerRepository;
    @Autowired

    public CustomerService( CustomerRepository customerRepository){
        this.customerRepository = customerRepository;
    }
    List<Customer> getCustomers(){
        LOGGER.info("getCustomer called");
    return customerRepository.findAll();
    }
//    Customer getCustomer(Long id){
//        return getCustomers()
//                .stream()
//                .filter(customer -> customer.getId() == id)
//                .findFirst()
//                .orElseThrow(() -> new NotFoundException("customer"+ id + "无法找到"));
//    }

    Customer getCustomer(Long id){
        return customerRepository
                .findById(id)
                .orElseThrow(() -> {
            NotFoundException notFoundException = new NotFoundException("customer" + id + "无法找到");
            LOGGER.error("error:getCustomer {}" + id ,notFoundException);
            return notFoundException;
        });
    }
}
